import { getRequest, postRequest, putRequest } from '@/libs/axios';

/**
 * 获取医生信息
 * @param {String} userId - 用户ID
 * @returns {Promise} 返回医生基本信息和排班信息
 */
export const getDoctorInfo = (userId) => {
  return getRequest('/doctorWorkbench/info', { userId });
};

/**
 * 获取患者列表
 * @param {String} userId - 用户ID
 * @param {String} status - 状态：WAITING-待诊，IN_PROGRESS-诊疗中，COMPLETED-已诊
 * @returns {Promise} 返回患者列表
 */
export const getPatientsByStatus = (userId, status) => {
  return getRequest('/doctorWorkbench/patients', { userId, status });
};

/**
 * 获取待诊患者列表
 * @param {String} userId - 用户ID
 * @returns {Promise} 返回待诊患者列表
 */
export const getWaitingPatients = (userId) => {
  return getPatientsByStatus(userId, 'WAITING');
};

/**
 * 获取诊疗中患者列表
 * @param {String} userId - 用户ID
 * @returns {Promise} 返回诊疗中患者列表
 */
export const getInProgressPatients = (userId) => {
  return getPatientsByStatus(userId, 'IN_PROGRESS');
};

/**
 * 获取已诊患者列表
 * @param {String} userId - 用户ID
 * @returns {Promise} 返回已诊患者列表
 */
export const getCompletedPatients = (userId) => {
  return getPatientsByStatus(userId, 'COMPLETED');
};

/**
 * 更新患者诊疗状态
 * @param {String} userId - 用户ID
 * @param {String} patientId - 患者ID
 * @param {String} status - 状态：WAITING-待诊，IN_PROGRESS-诊疗中，COMPLETED-已诊
 * @returns {Promise} 返回更新结果
 */
export const updatePatientStatus = (userId, patientId, status) => {
  return putRequest(`/doctorWorkbench/patients/${patientId}/status?status=${status}`);
};

/**
 * 获取患者历史就诊记录
 * @param {String} userId - 用户ID
 * @param {String} patientId - 患者ID
 * @returns {Promise} 返回患者历史就诊记录
 */
export const getPatientHistory = (userId, patientId) => {
  return getRequest(`/doctorWorkbench/patients/${patientId}/history`, {
    userId
  });
};

/**
 * 获取患者列表
 * @param {Object} params - 查询参数
 * @param {String} params.userId - 用户ID
 * @param {number} params.pageNumber - 页码
 * @param {number} params.pageSize - 每页数量
 * @param {string} params.searchKey - 搜索关键词（可选）
 * @returns {Promise} 返回分页的患者列表数据
 */
export const getPatientList = (params) => {
  return getRequest('/doctorWorkbench/patients/list', params);
};

export const getDoctorSchedules = (userId, params) => {
  return getRequest(`/doctorWorkbench/schedules?userId=${userId}&startDate=${params.startDate}&endDate=${params.endDate}`)
} 